package cn.iocoder.yudao.module.member.dal.dataobject.job;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BasePO;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.util.Date;

/**
 * 招聘职位 DO
 *
 * @author 谭万全
 */
@TableName("member_job")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MemberJobDO extends BasePO {

    /**
     * 用户id
     */
    @TableId
    private Long id;
    /**
     * 企业id
     */
    private Long companyId;
    /**
     * 企业名称
     */
    private String companyName;
    /**
     * 企业logo
     * <p>
     * 枚举 {@link TODO infra_file_storage 对应的类}
     */
    private String companyLogo;
    /**
     * 所属行业
     */
    private String industry;
    /**
     * 城市
     */
    private String city;
    /**
     * 职位名称
     */
    private String jobName;
    /**
     * 薪资类型
     * <p>
     * 枚举 {@link TODO salary_type 对应的类}
     */
    private String salaryUnit;
    /**
     * 最低薪资
     */
    private Integer lowestSalary;
    /**
     * 最高薪资
     */
    private Integer highestSalary;
    /**
     * 部门
     */
    private String department;
    /**
     * 学历要求
     */
    private String education;
    /**
     * hr手机
     */
    private String phone;
    /**
     * 工作周期
     */
    private String workPeriod;
    /**
     * hr邮箱
     */
    private String email;
    /**
     * 招聘对象
     * <p>
     * 枚举 {@link TODO recruitment_target 对应的类}
     */
    private String identify;
    /**
     * 实习周期
     */
    private String practicePeriod;
    /**
     * 招聘人数
     */
    private Integer recruitmentCount;
    /**
     * 工作地址
     */
    private String workAddress;
    /**
     * 工作坐标
     */
    private String workCoordinate;
    /**
     * 福利标签
     */
    private String welfareTags;
    /**
     * 职位描述
     */
    private String jobDescription;
    /**
     * 职位状态
     * <p>
     * 枚举 {@link TODO member_job_status 对应的类}
     */
    private String status;
    /**
     * 职位点击量
     */
    private Integer clickCount;
    /**
     * 职位投递量
     */
    private Integer postCount;
    /**
     * 审核描述
     */
    private String checkMessage;
    /**
     * 置顶状态
     */
    private String topStatus;
    /**
     * 审核时间
     */
    private Date checkTime;
    /**
     * 发布时间
     */
    private Date publishTime;

    /**
     * 工作语言
     */
    private String jobLanguage;

    /**
     * 刷新次数
     */
    private String  refreshCount;

    private String operation;

    private String remark;

    private Date postTime;
    @TableField(exist = false)
    private Date viewTime;

    private Integer isNew;
    private Integer isHot;

    private Integer newWeight;
    private Integer hotWeight;

    /**
     * 定时发布状态(0:无,1:定时发布,2:定时暂停)
     */
    private Integer timingStatus;
    /**
     *定时时间
     */
    private String fixedTime;

    @TableLogic
    private Boolean deleted;
    /*排序 */
    private Integer orderNum;
}
